library(tidyverse) # Manipulasi data (dplyr, ggplot2, readr)
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ dplyr 1.1.4 ✔ readr 2.1.6
## ✔ forcats 1.0.0 ✔ stringr 1.5.2
## ✔ ggplot2 4.0.1 ✔ tibble 3.3.0
## ✔ lubridate 1.9.4 ✔ tidyr 1.3.1
## ✔ purrr 1.1.0
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ dplyr::filter() masks stats::filter()
## ✖ dplyr::lag() masks stats::lag()
## ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors
library(plm) # Library utama untuk Regresi Data Panel
##
## Attaching package: 'plm'
##
## The following objects are masked from 'package:dplyr':
##
## between, lag, lead
library(psych) # Statistik deskriptif (describeBy)
##
## Attaching package: 'psych'
##
## The following objects are masked from 'package:ggplot2':
##
## %+%, alpha
library(lmtest) # Uji asumsi (bptest, pbgtest, coeftest)
## Loading required package: zoo
##
## Attaching package: 'zoo'
##
## The following objects are masked from 'package:base':
##
## as.Date, as.Date.numeric
library(car) # Uji Multikolinearitas (vif)
## Loading required package: carData
##
## Attaching package: 'car'
##
## The following object is masked from 'package:psych':
##
## logit
##
## The following object is masked from 'package:dplyr':
##
## recode
##
## The following object is masked from 'package:purrr':
##
## some
library(RColorBrewer) # Mewarnai ulang lines
library(readr)
library(dplyr)
Data
setwd("D:\\SEMESTER 1\\PEMROGRAMAN DATA")
options(scipen = 999)
df <- read_csv("Data Panel Jabar 2021-2024.csv")
## Rows: 108 Columns: 6
## ── Column specification ────────────────────────────────────────────────────────
## Delimiter: ","
## chr (1): Wilayah
## dbl (5): Tahun, TPT, TPAK, RLS, PPM
##
## ℹ Use `spec()` to retrieve the full column specification for this data.
## ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.
glimpse(df)
## Rows: 108
## Columns: 6
## $ Wilayah <chr> "Bandung", "Bandung", "Bandung", "Bandung", "Bandung Barat", "…
## $ Tahun <dbl> 2024, 2023, 2022, 2021, 2024, 2023, 2022, 2021, 2024, 2023, 20…
## $ TPT <dbl> 6.36, 6.52, 6.98, 8.32, 6.70, 8.11, 9.63, 11.65, 8.82, 8.87, 1…
## $ TPAK <dbl> 67.22, 67.10, 63.64, 65.12, 68.30, 67.01, 64.37, 60.75, 65.11,…
## $ RLS <dbl> 9.15, 9.10, 9.08, 9.07, 8.24, 8.23, 8.22, 8.20, 9.76, 9.57, 9.…
## $ PPM <dbl> 6.19, 6.40, 6.80, 7.15, 10.49, 10.52, 10.82, 11.30, 4.80, 4.93…
View(df)
print(describeBy(df$PPM, group = df$Wilayah))
##
## Descriptive statistics by group
## group: Bandung
## vars n mean sd median trimmed mad min max range skew kurtosis se
## X1 1 4 6.64 0.43 6.6 6.64 0.45 6.19 7.15 0.96 0.13 -2.14 0.21
## ------------------------------------------------------------
## group: Bandung Barat
## vars n mean sd median trimmed mad min max range skew kurtosis se
## X1 1 4 10.78 0.38 10.67 10.78 0.24 10.49 11.3 0.81 0.45 -1.95 0.19
## ------------------------------------------------------------
## group: Bekasi
## vars n mean sd median trimmed mad min max range skew kurtosis se
## X1 1 4 4.99 0.17 4.97 4.99 0.16 4.8 5.21 0.41 0.21 -1.94 0.09
## ------------------------------------------------------------
## group: Bogor
## vars n mean sd median trimmed mad min max range skew kurtosis se
## X1 1 4 7.54 0.48 7.5 7.54 0.5 7.05 8.13 1.08 0.14 -2.15 0.24
## ------------------------------------------------------------
## group: Ciamis
## vars n mean sd median trimmed mad min max range skew kurtosis se
## X1 1 4 7.62 0.27 7.57 7.62 0.24 7.39 7.97 0.58 0.25 -2.15 0.14
## ------------------------------------------------------------
## group: Cianjur
## vars n mean sd median trimmed mad min max range skew kurtosis se
## X1 1 4 10.52 0.47 10.39 10.52 0.3 10.14 11.18 1.04 0.47 -1.92 0.24
## ------------------------------------------------------------
## group: Cirebon
## vars n mean sd median trimmed mad min max range skew kurtosis se
## X1 1 4 11.63 0.63 11.61 11.63 0.75 11 12.3 1.3 0.04 -2.32 0.31
## ------------------------------------------------------------
## group: Garut
## vars n mean sd median trimmed mad min max range skew kurtosis se
## X1 1 4 10.13 0.48 10.09 10.13 0.55 9.68 10.65 0.97 0.06 -2.34 0.24
## ------------------------------------------------------------
## group: Indramayu
## vars n mean sd median trimmed mad min max range skew kurtosis se
## X1 1 4 12.47 0.52 12.45 12.47 0.62 11.93 13.04 1.11 0.04 -2.29 0.26
## ------------------------------------------------------------
## group: Karawang
## vars n mean sd median trimmed mad min max range skew kurtosis se
## X1 1 4 8.28 0.52 8.15 8.28 0.43 7.86 8.95 1.09 0.28 -2.12 0.26
## ------------------------------------------------------------
## group: Kota Bandung
## vars n mean sd median trimmed mad min max range skew kurtosis se
## X1 1 4 4.11 0.24 4.11 4.11 0.28 3.87 4.37 0.5 0.04 -2.3 0.12
## ------------------------------------------------------------
## group: Kota Banjar
## vars n mean sd median trimmed mad min max range skew kurtosis se
## X1 1 4 6.46 0.57 6.44 6.46 0.65 5.85 7.11 1.26 0.06 -2.2 0.28
## ------------------------------------------------------------
## group: Kota Bekasi
## vars n mean sd median trimmed mad min max range skew kurtosis se
## X1 1 4 4.32 0.33 4.26 4.32 0.31 4.01 4.74 0.73 0.24 -2.13 0.17
## ------------------------------------------------------------
## group: Kota Bogor
## vars n mean sd median trimmed mad min max range skew kurtosis se
## X1 1 4 6.88 0.34 6.88 6.88 0.42 6.53 7.24 0.71 0 -2.32 0.17
## ------------------------------------------------------------
## group: Kota Cimahi
## vars n mean sd median trimmed mad min max range skew kurtosis se
## X1 1 4 4.88 0.43 4.88 4.88 0.51 4.39 5.35 0.96 -0.02 -2.21 0.22
## ------------------------------------------------------------
## group: Kota Cirebon
## vars n mean sd median trimmed mad min max range skew kurtosis se
## X1 1 4 9.51 0.49 9.49 9.51 0.59 9.02 10.03 1.01 0.03 -2.34 0.25
## ------------------------------------------------------------
## group: Kota Depok
## vars n mean sd median trimmed mad min max range skew kurtosis se
## X1 1 4 2.46 0.12 2.46 2.46 0.14 2.34 2.58 0.24 0.02 -2.33 0.06
## ------------------------------------------------------------
## group: Kota Sukabumi
## vars n mean sd median trimmed mad min max range skew kurtosis se
## X1 1 4 7.74 0.48 7.76 7.74 0.56 7.2 8.25 1.05 -0.05 -2.23 0.24
## ------------------------------------------------------------
## group: Kota Tasikmalaya
## vars n mean sd median trimmed mad min max range skew kurtosis se
## X1 1 4 12.12 0.96 12.12 12.12 1.19 11.1 13.13 2.03 -0.01 -2.3 0.48
## ------------------------------------------------------------
## group: Kuningan
## vars n mean sd median trimmed mad min max range skew kurtosis se
## X1 1 4 12.46 0.56 12.44 12.46 0.65 11.88 13.1 1.22 0.06 -2.25 0.28
## ------------------------------------------------------------
## group: Majalengka
## vars n mean sd median trimmed mad min max range skew kurtosis se
## X1 1 4 11.57 0.68 11.57 11.57 0.83 10.82 12.33 1.51 0 -2.22 0.34
## ------------------------------------------------------------
## group: Pangandaran
## vars n mean sd median trimmed mad min max range skew kurtosis se
## X1 1 4 9.18 0.39 9.15 9.18 0.42 8.75 9.65 0.9 0.11 -2.11 0.2
## ------------------------------------------------------------
## group: Purwakarta
## vars n mean sd median trimmed mad min max range skew kurtosis se
## X1 1 4 8.6 0.2 8.58 8.6 0.21 8.41 8.83 0.42 0.11 -2.27 0.1
## ------------------------------------------------------------
## group: Subang
## vars n mean sd median trimmed mad min max range skew kurtosis se
## X1 1 4 9.7 0.25 9.63 9.7 0.19 9.49 10.03 0.54 0.36 -2.04 0.13
## ------------------------------------------------------------
## group: Sukabumi
## vars n mean sd median trimmed mad min max range skew kurtosis se
## X1 1 4 7.23 0.37 7.18 7.23 0.35 6.87 7.7 0.83 0.24 -2.09 0.19
## ------------------------------------------------------------
## group: Sumedang
## vars n mean sd median trimmed mad min max range skew kurtosis se
## X1 1 4 9.83 0.74 9.75 9.83 0.77 9.1 10.71 1.61 0.14 -2.19 0.37
## ------------------------------------------------------------
## group: Tasikmalaya
## vars n mean sd median trimmed mad min max range skew kurtosis se
## X1 1 4 10.6 0.43 10.5 10.6 0.37 10.23 11.15 0.92 0.28 -2.12 0.22
print(describeBy(df$PPM, group = df$Tahun))
##
## Descriptive statistics by group
## group: 2021
## vars n mean sd median trimmed mad min max range skew kurtosis se
## X1 1 27 8.97 2.89 8.95 9.09 2.73 2.58 13.13 10.55 -0.34 -0.86 0.56
## ------------------------------------------------------------
## group: 2022
## vars n mean sd median trimmed mad min max range skew kurtosis se
## X1 1 27 8.65 2.82 8.7 8.75 2.82 2.53 12.77 10.24 -0.31 -0.89 0.54
## ------------------------------------------------------------
## group: 2023
## vars n mean sd median trimmed mad min max range skew kurtosis se
## X1 1 27 8.18 2.68 8.46 8.27 2.7 2.38 12.13 9.75 -0.35 -0.92 0.51
## ------------------------------------------------------------
## group: 2024
## vars n mean sd median trimmed mad min max range skew kurtosis se
## X1 1 27 8.01 2.65 8.41 8.1 2.79 2.34 11.93 9.59 -0.36 -0.97 0.51
Tingkat Pengangguran Terbuka(TPT) adalah persentase jumlah pengangguran terhadap angkatan kerja, yaitu penduduk usia 15 tahun ke atas yang aktif secara ekonomi seperti penduduk bekerja, atau yang punya pekerjaan namun sementara tidak bekerja dan pengangguran. Di wilayah Jawa Barat pada tahun 2021-2024 atau masa pemulihan pasca pandemi, TPT tertinggi 2021 di sebagian besar wilayah menunjukkan dampak COVID-19 (PHK dan penurunan aktivitas ekonomi). Penurunan rata-rata TPT konsisten menunjukkan tren membaik di Jawa Barat, meski beberapa wilayah besar masih cukup tinggi. Kota Cimahi (2021-2023) konsisten punya TPT > 10%, jauh di atas rata-rata Jawa Barat. Ketimpangan antar wilayah, Pangandaran (1–3%) vs Karawang/Kota Cimahi (10–13%) menunjukkan perbedaan struktur ekonomi (jasa/pesisir vs industri/urban). Hal ini bisa membantu pemerinah untuk merancang kebijakan/program ketenagaan spesifik wilayah.
library(dplyr)
library(plotly)
##
## Attaching package: 'plotly'
## The following object is masked from 'package:ggplot2':
##
## last_plot
## The following object is masked from 'package:stats':
##
## filter
## The following object is masked from 'package:graphics':
##
## layout
# Ringkasan TPT per Tahun
summary_TPT <- df %>%
group_by(Tahun) %>%
summarise(
mean_TPT = mean(TPT, na.rm = TRUE),
min_TPT = min(TPT, na.rm = TRUE),
min_wilayah = Wilayah[which.min(TPT)],
max_TPT = max(TPT, na.rm = TRUE),
max_wilayah = Wilayah[which.max(TPT)]
)
# Plot interaktif
# Pastikan Tahun sebagai integer
summary_TPT$Tahun <- as.integer(summary_TPT$Tahun)
fig_TPT <- plot_ly(summary_TPT, x = ~Tahun) %>%
add_trace(y = ~mean_TPT, type = 'scatter', mode = 'lines+markers',
line = list(color = 'red', dash='dash'),
marker = list(size = 8),
name = 'Rata-rata') %>%
add_trace(y = ~min_TPT, type = 'scatter', mode = 'markers+text',
text = ~min_wilayah, textposition = 'bottom center',
marker = list(color = 'green', size = 12),
name = 'Min TPT') %>%
add_trace(y = ~max_TPT, type = 'scatter', mode = 'markers+text',
text = ~max_wilayah, textposition = 'top center',
marker = list(color = 'orange', size = 12),
name = 'Max TPT') %>%
layout(title = 'TPT per Tahun',
xaxis = list(title = 'Tahun', dtick = 1),
yaxis = list(title = 'TPT'))
fig_TPT
Dapat dilihat pada plot diatas, secara umum/rata-rata dari tahun 2021 sampai tahun 2024 terjadi penurunan Tingkat Pengangguran Terbuka di Provinsi Jawa Barat yang awalnya 9.4 pada tahun 2021 terus menurun menjadi 6.5 pada Tahun 2024. Beberapa wilayah misalnya di Bandung yang awalnya 8.32 menjadi 6.36, Bandung Barat dari 11.65 mejadi 6.70, dan Kota Cimahi dari 13.07 menjadi 8.97. Ini menunjukkan pemulihan pas kerja pasca pandemi COVID-19.
Beberapa wilayah industri/manufaktur seperti Karawang dan Cianjur memiliki TPT cukup tinggi pada 2021 (11.83 dan 9.32), meski mengalami penurunan ke 2024. Wilayah seperti Pangandaran (1.58 pada 2024) menunjukkan pengangguran sangat rendah, kemungkinan karena tingkat partisipasi kerja lebih rendah (misal sektor pertanian/nelayan) dan tenaga kerja lebih banyak di sektor informal atau keluarga.
Cimahi konsisten menjadi wilayah dengan TPT paling tinggi walaupun sempat turun pada tahun 2022 yang bisa disebabkan oleh struktur ekonomi Cimahi yang termasuk kota industri tapi terbatas lahan dan jumlah lapangan kerja formal dibandingkan dengan kota besar seperti Bandung atau Bekasi, akan tetapi Cimahi tetap mengalami penurunan TPT setiap tahun.
Rata-rata Lama Sekolah (RLS) adalah indikator pendidikan yang digunakan untuk mengukur lama rata-rata pendidikan formal yang telah ditempuh oleh penduduk usia tertentu, biasanya usia 15 tahun ke atas. Menurut Badan Pusat Statistik (BPS), RLS mencerminkan tingkat partisipasi pendidikan dan pencapaian pendidikan penduduk di suatu wilayah. Semakin tinggi RLS, berarti penduduk rata-rata telah menempuh jenjang pendidikan yang lebih panjang, yang umumnya berkorelasi dengan keterampilan dan kesiapan untuk memasuki pasar kerja. Analisis RLS di Jawa Barat periode 2021–2024 menunjukkan adanya perbedaan yang signifikan antara kota dan kabupaten, dengan kota-kota besar cenderung memiliki RLS lebih tinggi dibanding wilayah pedesaan atau kabupaten, yang mencerminkan kesenjangan pendidikan di tingkat regional.
# Ringkasan RLS per Tahun
summary_RLS <- df %>%
group_by(Tahun) %>%
summarise(
mean_RLS = mean(RLS, na.rm = TRUE),
min_RLS = min(RLS, na.rm = TRUE),
min_wilayah = Wilayah[which.min(RLS)],
max_RLS = max(RLS, na.rm = TRUE),
max_wilayah = Wilayah[which.max(RLS)]
)
# Pastikan Tahun sebagai integer
summary_RLS$Tahun <- as.integer(summary_RLS$Tahun)
# Plot interaktif
fig_RLS <- plot_ly(summary_RLS, x = ~Tahun) %>%
add_trace(y = ~mean_RLS, type = 'scatter', mode = 'lines+markers',
line = list(color = 'blue', dash='dash'),
marker = list(size = 8),
name = 'Rata-rata') %>%
add_trace(y = ~min_RLS, type = 'scatter', mode = 'markers+text',
text = ~min_wilayah, textposition = 'bottom center',
marker = list(color = 'green', size = 12),
name = 'Min RLS') %>%
add_trace(y = ~max_RLS, type = 'scatter', mode = 'markers+text',
text = ~max_wilayah, textposition = 'top center',
marker = list(color = 'orange', size = 12),
name = 'Max RLS') %>%
layout(title = 'RLS per Tahun',
xaxis = list(title = 'Tahun', dtick = 1),
yaxis = list(title = 'RLS'))
fig_RLS
Berdasarkan plot interaktif Rata-rata Lama Sekolah (RLS) di Jawa Barat periode 2021–2024, terlihat bahwa tren RLS per wilayah relatif stabil. Garis rata-rata yang menghubungkan nilai rata-rata tahunan hampir datar, menunjukkan bahwa perubahan lama pendidikan penduduk berlangsung perlahan. Hal ini wajar karena pendidikan formal menempuh beberapa jenjang yang memerlukan beberapa tahun, sehingga RLS tidak berubah drastis dalam waktu singkat.
Plot juga menyorot perbedaan ekstrem antarwilayah. Titik maksimum RLS berada di Kota Depok untuk tahun 2021–2022, Kota Bekasi pada 2023–2024, dengan nilai sekitar 11–11,6 tahun. Sebaliknya, titik minimum RLS secara konsisten berada di Indramayu dari 2021 hingga 2024, dengan nilai sekitar 6–7 tahun.
Dari plot terlihat bahwa rata-rata RLS Jawa Barat berkisar 7–8 tahun, mencerminkan pendidikan dasar hingga menengah bagi sebagian besar penduduk. Fenomena menarik adalah meski beberapa kota memiliki RLS tinggi, seperti Kota Depok atau Kota Bekasi, beberapa wilayah tetap menunjukkan ketimpangan pendidikan, terutama Indramayu yang menjadi wilayah dengan RLS terendah sepanjang periode.
Fenomena menarik adalah beberapa kota dengan RLS tinggi tetap memiliki Tingkat Pengangguran Terbuka (TPT) tinggi, misalnya Kota Cimahi, yang bisa menjadi titik kajian lebih lanjut terkait keterbatasan lapangan kerja atau dinamika urbanisasi.
PPM atau Persentase Penduduk Miskin menurut BPS adalah persentase jumlah penduduk yang berada di bawah garis kemiskinan terhadap total penduduk di suatu wilayah. PPM mencerminkan tingkat kemiskinan di wilayah tersebut, di mana semakin tinggi persentasenya, semakin besar proporsi penduduk yang hidup di bawah garis kemiskinan.
# Ringkasan PPM per Tahun
summary_PPM <- df %>%
group_by(Tahun) %>%
summarise(
mean_PPM = mean(PPM, na.rm = TRUE),
min_PPM = min(PPM, na.rm = TRUE),
min_wilayah = Wilayah[which.min(PPM)],
max_PPM = max(PPM, na.rm = TRUE),
max_wilayah = Wilayah[which.max(PPM)]
)
# Pastikan Tahun sebagai integer
summary_PPM$Tahun <- as.integer(summary_PPM$Tahun)
# Plot interaktif
fig_PPM <- plot_ly(summary_PPM, x = ~Tahun) %>%
add_trace(y = ~mean_PPM, type = 'scatter', mode = 'lines+markers',
line = list(color = 'purple', dash='dash'),
marker = list(size = 8),
name = 'Rata-rata') %>%
add_trace(y = ~min_PPM, type = 'scatter', mode = 'markers+text',
text = ~min_wilayah, textposition = 'bottom center',
marker = list(color = 'green', size = 12),
name = 'Min PPM') %>%
add_trace(y = ~max_PPM, type = 'scatter', mode = 'markers+text',
text = ~max_wilayah, textposition = 'top center',
marker = list(color = 'orange', size = 12),
name = 'Max PPM') %>%
layout(title = 'PPM per Tahun',
xaxis = list(title = 'Tahun', dtick = 1),
yaxis = list(title = 'PPM'))
fig_PPM
Berdasarkan plot interaktif, rata-rata PPM Jawa Barat cenderung stabil di kisaran 8–9% dari 2021 hingga 2024. Namun, per wilayah terlihat perbedaan yang cukup mencolok: Indramayu dan Kota Tasikmalaya secara konsisten memiliki PPM tertinggi, sedangkan Depok dan Kota Depok berada di posisi terendah setiap tahunnya. Tren ini menunjukkan adanya disparitas kemiskinan antarwilayah, meskipun rata-rata provinsi relatif stabil.
Indramayu dan Kota Tasikmalaya menjadi wilayah dengan PPM tertinggi sepanjang 2021–2024, menandakan proporsi penduduk miskin di wilayah ini relatif tinggi dan perlu perhatian khusus. Wilayah ini cenderung memiliki TPT yang sedang sampai tinggi, TPT Indramayu relatif stabil menengah-tinggi dari 2021–2024. Hal ini menunjukkan bahwa sebagian kemiskinan bisa terkait dengan tingkat pengangguran yang masih cukup tinggi atau kesempatan kerja terbatas.Rata-rata Lama Sekolah (RLS) di wilayah ini juga tidak terlalu tinggi dibandingkan kota besar seperti Depok atau Bekasi. Pendidikan yang lebih rendah bisa membatasi akses penduduk ke pekerjaan yang lebih produktif, sehingga berkontribusi pada PPM tinggi.
Kota Depok konsisten berada di posisi terendah, menunjukkan kemiskinan yang relatif rendah dan kestabilan ekonomi yang lebih baik dibanding wilayah lain. TPT di wilayah ini relatif lebih rendah, menunjukkan tingkat pengangguran yang kecil dan akses kerja lebih baik. RLS di Depok termasuk tinggi, menandakan penduduk lebih lama bersekolah dan memiliki keterampilan lebih baik, yang mempermudah akses pekerjaan dengan penghasilan lebih tinggi sehingga menurunkan PPM.
Wilayah dengan PPM tinggi biasanya memiliki RLS rendah dan TPT lebih tinggi, sedangkan wilayah dengan PPM rendah memiliki RLS tinggi dan TPT rendah. Ini menunjukkan hubungan yang logis antara kemiskinan, pendidikan, dan pengangguran, pendidikan lebih tinggi akan mendapatkan kesempatan kerja lebih baik sehingga penghasilan lebih stabil dan pada akhirnya kemiskinan lebih rendah.Pola ini menegaskan bahwa pendidikan dan kesempatan kerja sangat berpengaruh terhadap kemiskinan di Jawa Barat 2021–2024.